const { DataTypes, Model, Deferrable } = require("sequelize");
const sequelize = require("../../db/sequelize");
const GoodsSkusCardValue = require("./goods_skus_card_value");
/**
 * 规格卡片
 */
class GoodsSkusCard extends Model {
    //创建
    static async addGoodsSkusCard(goods_id,name,order,type){
        return await this.create({
            goods_id:goods_id,
            name:name,
            order:order,
            type:type
        })
    }
    //更新
    static async updateGoodsSkusCard(id,goods_id,name,order,type){
        return await this.update({
            goods_id:goods_id,
            name:name,
            order:order,
            type:type
        },{
            where:{
                id:id
            }
        })
    }
    //删除
    static async deleteGoodsSkusCard(id){
        await this.destroy({
            where:{
                id:id
            }
        })
    }
    //排序
    static async sortOrder(sortdata){
        await sortdata.forEach(async value => {
            await this.update({
                order:value.order
            },{
                where:{
                    id:value.id
                }
            })
        });
    }
    static async setGoodsSkusCard(id,name,value){
        //删除规格值
        await GoodsSkusCardValue.destroy({
            where:{
                goods_skus_card_id:id
            }
        })
        let json={goods_skus_card:{id:id,name:name},goods_skus_card_value:[]}
        await value.forEach(async value=>{
            let g=await GoodsSkusCardValue.addGoodsSkusCardValue(id,name,50,value)
            json.goods_skus_card_value.push(g.toJSON())
        })
        return json
    }
};
GoodsSkusCard.init({
    id:{
        type:DataTypes.INTEGER,
        primaryKey: true,
        autoIncrement: true
    },
    goods_id:{
        type:DataTypes.INTEGER
    },
    name:{
        type:DataTypes.STRING
    },
    type:{
        type:DataTypes.TINYINT(1),
        defaultValue:0
    },
    order:{
        type:DataTypes.INTEGER
    }
}, {
    sequelize,
    timestamps:false,
    modelName: "GoodsSkusCard",
    tableName: "goods_skus_card",
})
module.exports = GoodsSkusCard